package org.xlp.db.xml;

import java.util.List;

/**
 * 处理{@link ISQLXmlFileHandler}集合操作接口，
 * 提供在给定的集合中删除，移除，添加{@link ISQLXmlFileHandler}该对象功能
 * @version 1.0
 * @author xlp
 */
public interface ISQLXmlFileHandlerList {
    /**
     * 添加处理器
     * @param index 向指定索引添加处理器
     * @param handler 要添加的处理器
     */
    void addHandler(int index, ISQLXmlFileHandler handler);

    /**
     * 添加处理器
     * @param handler 要添加的处理器
     */
    void addHandler(ISQLXmlFileHandler handler);

    /**
     * 向头部添加处理器
     * @param handler 要添加的处理器
     */
    void addHandlerToHead(ISQLXmlFileHandler handler);

    /**
     * 移除指定位置的处理器
     * @param index
     * @throws IllegalAccessException 假如参数不合理，则抛出该异常
     */
    void removeHandler(int index);

    /**
     * 移除指定的sql处理器
     * @param handler
     */
    void removeHandler(ISQLXmlFileHandler handler);

    /**
     * 移除所有的处理器
     */
    void clearHandler();

    /**
     * 获取所有的sql处理器
     * @return
     */
    List<ISQLXmlFileHandler> getAllHandlers();
}
